Adaptable control for autonomous maritime vehicles

ABSTRACT

Methods and structures are disclosed for providing autonomous control of an underwater vehicle using a state machine. A controller is used onboard the underwater vehicle and includes a state machine having a plurality of operating states. Each of the plurality of operating states includes one or both of entrance criteria and exit criteria. The controller is configured to transition from executing a first operating state of the plurality of operating states to executing a second operating state of the plurality of operating states in response to the exit criteria of the first operating state and the entrance criteria of the second operating state both being met. The plurality of operating states includes a first portion of operating states associated with a first task, a second portion of operating states associated with a second task, and a third portion of operating states associated with both the first and second tasks.

BACKGROUND

Maritime vehicles, and more specifically unmanned underwater vehicles(UUVs), are useful for performing various complex maritime tasks such asreconnaissance, oceanographic survey, payload deployment/recovery, ormine countermeasures. Unmanned vehicles require some form of controlsystem to carry out the tasks. The control system may be manuallyoperated by a user transmitting commands to the unmanned vehicle, or thecontrol system may be autonomous. Autonomous control systems aredesirable due to reduced interaction required from the user, but areoften very rigid in their protocols. As will be appreciated, a number ofnon-trivial issues remain with respect to providing a robust autonomouscontrol system for an underwater vehicle.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of embodiments of the claimed subject matterwill become apparent as the following Detailed Description proceeds, andupon reference to the Drawings, in which:

FIG. 1 illustrates an example undersea environment with an underwatervehicle, in accordance with some embodiments of the present disclosure.

FIG. 2 illustrates select components of an underwater vehicle, inaccordance with some embodiments of the present disclosure.

FIG. 3 illustrates a schematic diagram of a state machine forcontrolling the operation of an underwater vehicle, in accordance withsome embodiments of the present disclosure.

FIG. 4 illustrates a schematic diagram of another state machine forcontrolling the operation of an underwater vehicle, in accordance withsome embodiments of the present disclosure.

FIG. 5 illustrates an example set of tasks performed in order as part ofa particular mission, in accordance with an embodiment of the presentdisclosure.

FIG. 6 is a flowchart illustrating an example method of using a statemachine to control an underwater vehicle, in accordance with someembodiments of the present disclosure.

FIG. 7 is a flowchart illustrating another example method of using astate machine to control an underwater vehicle, in accordance with someembodiments of the present disclosure.

FIG. 8 is a flowchart illustrating another example method of using astate machine to control an underwater vehicle, in accordance with someembodiments of the present disclosure.

FIG. 9 illustrates an example computing platform that can be used toimplement one or more of the embodiments of the present disclosure.

Although the following Detailed Description will proceed with referencebeing made to illustrative embodiments, many alternatives,modifications, and variations thereof will be apparent in light of thisdisclosure.

DETAILED DESCRIPTION

Methods and structures are disclosed for providing autonomous control ofa maritime vehicle using a state machine. According to an embodiment, acontroller is used onboard the maritime vehicle and includes a statemachine having a plurality of operating states for the vehicle. Each ofthe plurality of operating states includes one or both of entrancecriteria and exit criteria. The entrance and exit criteria may bepreconfigured by a user to determine when and how one state transitionsto another state. For example, the controller is configured totransition from executing a first operating state of the plurality ofoperating states to executing a second operating state of the pluralityof operating states in response to the exit criteria of the firstoperating state and the entrance criteria of the second operating stateboth being met. In cases where the entrance criteria of more than oneother state is met, a priority list may be used to determine which ofthe other states is executed next. The priority list may also bepre-configured by a user, or it may be dynamically formed based on oneor more measured parameters regarding underwater vehicle and/or theenvironment around the underwater vehicle. The plurality of operatingstates may be configured to address a number of tasks. For instance, inone such embodiment, the plurality of operating states includes a firstportion of operating states associated with a first task for which theunderwater vehicle is configured to perform, a second portion ofoperating states associated with a second task for which the underwatervehicle is configured to perform, and a third portion of operatingstates associated with both the first and second tasks for which theunderwater vehicle is configured to perform. In some specific exampleembodiments, the plurality of operations states includes multi-agentoperating states that are activated in the presence of anotherunderwater vehicle and are executed in concert with the other underwatervehicle.

General Overview

As previously noted, there a number of non-trivial issues that remainwith respect to controlling underwater vehicles. For example, mostcontrol schemes necessitate heavy user involvement throughout theduration of a mission. This involvement can include directly controllingmovements of the underwater vehicle or selecting actions to be performedfrom a list of possible actions. Additionally, control schemes aretypically designed to execute a mission as a linear set of tasks, anddeviation from the task list is not allowed. If any task is not able tobe completed, the underwater vehicle may simply abort the mission. In amore general sense, existing schemes for controlling underwater vehicleslack adaptability and tend to have few mechanisms in place to react toenvironments which may lead to mission failure.

Thus, techniques are provided herein to control an underwater vehicleusing an adaptable state machine that allows for autonomous decisionmaking. Entrance and exit criteria for transitioning from one operatingstate to another operating state are used to manage the one or moretasks performed by the underwater vehicle. Such criteria may bepredetermined by a user before the launch of the vehicle. In someembodiments, the entrance and exit criteria can be dynamically alteredor are otherwise adaptable based on measured parameters of the vehicleor its environment to allow for dynamic, autonomous decision makingduring a mission. The various “states” may represent high-leveloperation tasks such as “transit” or “hold” or “extraction.” One statemay be an “abort” state that can be triggered whenever a fail status isreceived from another state or when a particular task has beencompleted. Additionally, the state machine implementation for missioncontrol is consistent with current manual submarine planning processes,making the specification of new maritime tasks intuitive to navalplanners. For example, explanation of the unmanned system's activitiesduring and post mission is amenable to human understanding since theautonomy software can record its transitions between states and providethe entrance criteria (reasons) explaining why it executed eachtransition decision. Although state machine implementations like thosediscussed herein are well-suited for autonomous control of underwatervehicles, it will be understood that other vehicles can also benefitfrom such autonomous control systems, including aircraft or ground-basedvehicles, whether manned or unmanned as will be appreciated. In fact,surface vehicles, such as unmanned surface vehicles, may perform verysimilar tasks as those of underwater vehicles.

In an example embodiment, a state machine may include a plurality ofinterconnected states where transition between one operating state andthe next is governed by meeting certain exit and/or entrance criteriafor the transition to occur. The transitions may be between high-leveloperating states that can be shared by any number of tasks, such asbetween a “launch” state and a “transit” state, or between a “transit”state and an “extraction” state where data extraction occurs. Accordingto some embodiments, the transitions may occur between states that areassociated with performing a particular maritime task. The tasks can bemission-specific and designed by a user. Still other transitions mayoccur between task-specific states and shared high-level operatingstates. The ability to transition between numerous states to perform anynumber of tasks allows for a high degree of flexibility and autonomy onthe part of the underwater vehicle. For example, if entrance criteria isnot met to transition to a state associated with performing a firsttask, the entrance criteria can be checked for transitioning to adifferent state associated with performing a second task. In this way,the underwater vehicle is not delayed, idle, or prematurely aborting amission just because it cannot proceed with its current task. Theentrance and/or exit criteria are adaptable during a given mission,based on sensed or otherwise learnable data, thus giving the statemachine a degree of adaptability.

According to some specific example embodiments, a controller for use onthe underwater vehicle includes a state machine having a plurality ofoperating states for the underwater vehicle, where each of the pluralityof operating states includes one or both of entrance criteria and exitcriteria. The controller is configured to transition from executing afirst operating state of the plurality of operating states to executinga second operating state of the plurality of operating states inresponse to the exit criteria of the first operating state and theentrance criteria of the second operating state both being met. Theplurality of operating states includes a first portion of operatingstates associated with a first task for which the underwater vehicle isconfigured to perform, a second portion of operating states associatedwith a second task for which the underwater vehicle is configured toperform, and a third portion of operating states associated with boththe first and second tasks for which the underwater vehicle isconfigured to perform. Although only two tasks are discussed in thisexample, the plurality of operating states can allow for the executionof any number of tasks, where each task includes any number of operatingstates.

According to another example embodiment, a method of autonomouslycontrolling an underwater vehicle includes executing a first operatingstate of a plurality of operating states associated with the underwatervehicle. The method further includes determining that exit criteria ofthe first operating state is met and that entrance criteria of a secondoperating state of the plurality of operating states is met, and inresponse to the determining, transitioning from executing the firstoperating state to executing the second operating state. The pluralityof operating states comprises a first portion of operating statesassociated with a first task for which the underwater vehicle isconfigured to perform, a second portion of operating states associatedwith a second task for which the underwater vehicle is configured toperform, and a third portion of operating states associated with boththe first and second tasks for which the underwater vehicle isconfigured to perform. The method may be performed by a controller orother hardware such as a field-programmable gate array (FPGA) thatincludes a state machine with various pre-determined connections betweendifferent operating states. In some embodiments, the method alsoincludes detecting the presence of a second underwater vehicle inproximity to the first under underwater vehicle and teaming up with thesecond underwater vehicle. Teaming up may involve some form of anauthentication process with the second underwater vehicle. In responseto the teaming, the method includes activating one or more multi-agentstates of the plurality of operating states and executing one or more ofthe one or more multi-agent states.

According to another example embodiment, a computer program product isdisclosed that includes one or more non-transitory machine-readablemediums having instructions encoded thereon that, when executed by oneor more processors, result in a plurality of operations for autonomouslycontrolling an underwater vehicle to be executed. The plurality ofoperations may include any of the method operations discussed above.

The description uses the phrases “in an embodiment” or “in embodiments,”which may each refer to one or more of the same or differentembodiments. Furthermore, the terms “comprising,” “including,” “having,”and the like, as used with respect to embodiments of the presentdisclosure, are synonymous. When used to describe a range of dimensions,the phrase “between X and Y” represents a range that includes X and Y.

Various operations may be described as multiple discrete actions oroperations in turn, in a manner that is most helpful in understandingthe claimed subject matter. However, the order of description should notbe construed as to imply that these operations are necessarily orderdependent. In particular, these operations may not be performed in theorder of presentation. Operations described may be performed in adifferent order from the described embodiment. Various additionaloperations may be performed, and/or described operations may be omittedin additional embodiments.

Unmanned Underwater Vehicle (UUV) Overview

FIG. 1 illustrates an example maritime environment 100 in which anunderwater vehicle 104 moves beneath the water's surface 102. Underwatervehicle 104 may be any kind of submerged vehicle or platform, such as anunmanned underwater vehicle (UUV). Underwater vehicle 104 may performany number of tasks after being launched.

A first example task is illustrated in FIG. 1 where underwater vehicle104 approaches the water's surface 102 and extends a mast 106 having ahead region 108 housing one or more electronic devices, according to anembodiment of the present disclosure. In some embodiments, the one ormore electronic devices of head region 108 includes one or more RFand/or optical receivers, transmitters, or transceivers forsending/receiving wireless communication signals 110 with, for example,a ship, aircraft, satellite, other underwater vehicle, or a land-basedcommunication station. Data received by underwater vehicle 104 mayinclude, for example, GPS signals to locate the underwater vehicle,messages/communications, or signals to program a processing deviceonboard underwater vehicle 104. Data transmitted by underwater vehicle104 may include, for example, messages/communications, or data gatheredfrom sensors onboard underwater vehicle 104 or on head region 108.Alternatively, or in addition, the one or more electronic devices ofhead region 108 may include one or more other sensors, such as a camerato capture above-surface images, a radiation sensor to detect thepresence of above-surface radiation, a temperature sensor to detect theabove-surface temperature, and/or a contact sensor or range-finder todetect the above-surface objects. In a more general sense, the one ormore electronic devices of head region 108 may include any type ofsensor or electronic equipment that can assist in communicatinginformation to underwater vehicle 104 or from underwater vehicle 104, aswill be appreciated. In some embodiments, underwater vehicle 104 mayapproach the water's surface 102 in order to perform reconnaissance orto patrol a given area looking for certain above-water craft.

A second example task is illustrated in FIG. 1 where underwater vehicle104 navigates or moves to a particular location to either recover ordeposit a payload 112, according to an embodiment of the presentdisclosure. In some embodiments, after completing the recovery/deposittask, underwater vehicle 104 continues on to completing another task ormoving to an extraction location. Payload 112 can be any object that isable to be carried by underwater vehicle 104. In one example, payload112 is an explosive device that is placed at a particular location (e.g.an underwater mine) and armed for detonation after underwater vehicle104 has left the area. In another example, payload 112 represents apiece of debris from a shipwreck or other vehicle crash that is to berecovered for analysis. In this example, underwater vehicle 104 canretrieve payload 112 and return it to an extraction location where theitem of interest is recovered.

FIG. 2 illustrates components present within underwater vehicle 104,according to some embodiments. Underwater vehicle 104 may include acontrol module 202, a propulsion system 204, sensors 206, a transceiver208, a memory 210, and a precision navigation system (PNS) 212.

Control module 202 can include any circuits and/or instructions storedin memory designed to control the operating state of underwater vehicle104. According to some embodiments, control module 202 includes a statemachine that includes a predetermined plurality of states along withentrance and exit criteria for transitioning between various ones of theplurality of states. Some of the states may be shared by more than onetask, while other states are particular for a given task. Still otherstates may be activated only in the presence of another underwatervehicle or any other entity that can join the underwater vehicle inexecuting the activated states. In some embodiments, control module 202may represent one or more processing units that includesmicrocontrollers, microprocessors, application specific integratedcircuits (ASICs), and field programmable gate arrays (FPGAs). Accordingto some embodiments, control module 202 determines all of the operationsperformed by underwater vehicle 104.

Propulsion system 204 may include any number of elements involved inmoving underwater vehicle 104 once it is submerged. Accordingly,propulsion system 204 may include a motor, a fuel source, and apropeller or jet nozzle. In some examples, the motor can turn thepropeller in the water to move underwater vehicle 104. In some otherexamples, the motor can activate a pump that forces water out of the jetnozzle to move underwater vehicle 104. In another embodiment, thepropulsion system may be a passive, buoyancy-based mechanism as used insome types of undersea gliders.

Sensors 206 may include any number of internal sensors used to measureparameters related to the various subsystems of underwater vehicle 104.Furthermore, sensors 206 may include any number of external sensors thatmeasure parameters related to the aquatic environment around underwatervehicle 104. According to some embodiments, the output of any of sensors206 is used to adapt the criteria used for transitioning between statesof the state machine. For example, if an external sensor receivesacoustic signals that indicate the presence of an enemy surface vesselin a particular area, the state machine may be adapted such that certainstates involving moving too close to the enemy surface vessel or makingtoo much noise are deactivated until the enemy surface vessel is farenough away. In another example, an internal sensor used to gauge theamount of fuel left may provide a fuel-level measurement that is used toadapt the state machine to abort a task before its completion in orderto move underwater vehicle 104 to an extraction location before the fuelruns out. Other examples will be readily apparent of ways to use sensoroutputs to adapt the criteria used to determine one or more statetransitions in the state machine.

Transceiver 208 may include any hardware used to transmit and/or receiveradio frequency (RF) or acoustic signals. In some embodiments,transceiver 208 may be located on a mast that is extended up out of thewater when communication is desired. In some embodiments, transceiver208 is designed to receive acoustic signals through the water that canused to provide location tracking for underwater vehicle 104, or toidentify the location of objects or terrain around underwater vehicle104. In some embodiments, information associated with underwater vehicle104, such as task progression, sensor observations, vehicle position,etc. may be transmitted by transceiver 208 and received at a remotesite. In some embodiments, operating instructions for underwater vehicle104 may be transmitted from a remote site and received by transceiver208.

Memory 210 may represent one or more memory devices that can be any typeof memory. The memory devices can be one or more of DDR-SDRAM, FLASH, orhard drives to name a few examples. Navigational routes or any otherdata may be preloaded into memory 210 before underwater vehicle 104 issubmerged. In some embodiments, data received or collected from any ofthe one or more electronic devices on the underwater vehicle 104 arestored in memory 210. Additionally, according to some embodiments,control module 202 records each of the state machine transitions in areport that is stored in memory 210. The report can include a variety ofinformation, including the readings provided by various ones of sensors206 at different times, the particular states that underwater vehicle104 operated in and during what times each state was executed, and why atransition was made from one state to another (e.g., showing how theexit and/or entrance criteria was met for the transition), to name a fewexamples.

PNS 212 may be included to provide additional data input for determiningand/or refining the position of underwater vehicle 104. PNS 212 mayinclude one or more inertial sensors that track movement of underwatervehicle 104.

State Machine Examples

FIG. 3 illustrates an example schematic of a state machine 300 that canbe used to control the operations of underwater vehicle 104, accordingto an embodiment. State machine 300 can include any number of operatingstates with any number of transitions between operating states. Thetransitions from one state to another may be governed by exit and/orentrance criteria to determine if a transition should occur. Accordingto an embodiment, a user provides the initial state machine blueprint tounderwater vehicle 104 before it is launched. This blueprint containsall of the states related to the tasks that the user would likeunderwater vehicle 104 to perform, including the criteria for when tomove between different states of each of the tasks. In some embodiment,the initial state machine blueprint can be adapted based on outputprovided by one or more sensors onboard underwater vehicle 104.

State machine 300 generally provides a control system for havingunderwater vehicle 104 perform up to two different tasks. It should beunderstood that only two tasks are described here for clarity and thatany number of tasks, each having any number of states, can be used bythe state machine. The states illustrated in state machine 300 can begenerally split into three categories: a first set of states that areshared by both tasks (identified with bolded borders); a second set ofstates associated with performing a first task; and a third set ofstates associated with performing a second task. The tasks may be anymaritime tasks that underwater vehicle 104 can perform. For example,Task 1 may represent delivering a payload to a particular location whileTask 2 may represent intelligence gathering of a particular region toidentify possible threats in the region.

Operation of underwater vehicle 104 may begin at a launch state 302.According to some embodiments, launch state 302 may involve determiningthat underwater vehicle 104 has been successfully loaded into the waterand that all systems on board are operational. If any systems are foundto be malfunctioning, state machine 300 may transition directly to anabort state 304. Otherwise, state machine 300 transitions to executingeither first task/first state 306 or second task/first state 308. If theentrance criteria of only one of the possible next states is met, thenthat state is selected for execution. However, there may be situationswhere the entrance criteria of more than one other state is met. In suchsituations, a priority list may be used to determine which state toexecute next. In the provided example, after launch state 302 hascompleted, the entrance criteria of both first task/first state 306 andsecond task/first state 308 could be met. A priority list would then beused to determine which of the two states has a higher priority. Thepriority list may be generated by a user and loaded into memory ofunderwater vehicle 104 before it is launched. In some embodiments, thepriority list is dynamically adaptable and can change based on currentoperating conditions of underwater vehicle 104 and/or outputs receivedfrom one or more sensors onboard underwater vehicle 104.

First task/first state 306 may involve preparing underwater vehicle 104to perform the first task. In one example, the first task involvesdelivering a payload so state machine 300 would next transition to theshared transit state 310 in order to move to the location of thepayload. Once underwater vehicle 104 arrives at the location, theentrance criteria for first task/second state 312 may be met such thatthe operating state of underwater vehicle 104 transitions to firsttask/second state 312 where the payload is recovered. Once the payloadis secured, the operating state of underwater vehicle 104 may transitionto the shared extraction state 314 where underwater vehicle 104 moves toan extraction point to allow for recovery of the payload at the sharedvehicle recovery state 316.

Second task/first state 308 may involve preparing underwater vehicle 104to perform the second task. In one example, the second task involvespatrolling a zone to gather intelligence so state machine 300 would nexttransition to the shared transit state 310 in order to move to thepatrol zone. Once the zone has been reached, the entrance criteria forsecond task/second state 318 may be met such that the operating state ofunderwater vehicle 104 transitions to second task/second state 318 whereunderwater vehicle 104 gathers data (e.g., RF signals) over a large areafrom above the water's surface. If the gathered data identifies thepresence of an object of interest, then the operating state maytransition back to the shared transit state 310 to move underwatervehicle 104 closer to the object of interest. Once close enough, theoperating state may transition to a second task/third state 320 whereadditional data (e.g., photos or video) is gathered specifically aboutthe object of interest. Once enough data has been collected, or aparticular duration of time has passed, or both, the operating state ofunderwater vehicle 104 may transition to the shared extraction state 314where underwater vehicle 104 moves to an extraction point to allow forrecovery of underwater vehicle 104 at the shared vehicle recovery state316.

The discussion above provides some possible execution paths throughstate machine 300, however, the branching paths and adaptable designallow for any number of possible execution paths. Execution of any statecan be aborted at any time if the criteria is met. Once within theshared aborted state 304, state machine 300 can transition to try tobegin any of the tasks again if the entrance criteria for such tasks ismet. In this way, underwater vehicle 104 can attempt to either restartan aborted task or find another task to perform if its previous task isaborted, according to an embodiment. Furthermore, the web-like andmulti-branching nature of state machine 300 allows for variousoperational states to be executed from different tasks before thecompletion of any one of the tasks, according to an embodiment. Forexample, while in the shared transit state 310 on its way to recover apayload (e.g., performing the first task), underwater vehicle 104 maystumble across an object of interest that may trigger the entrancecriteria of second task/third state 320 (e.g., part of the second task)and transition execution to second task/third state 320 to collect datafrom the object of interest. Once that task is complete, state machine300 may eventually return to the shared transit state 310 to continue onits way to the payload site.

As noted above, the transition between any two states may have adaptablecriteria which can fundamentally alter the decision making performed bythe controller, according to some embodiments. The entrance or exitcriteria of any state can be adapted based on one or more parameters ofunderwater vehicle 104 or of an environment around underwater vehicle104. Some example parameters measured from within underwater vehicle 104include one or more of a measured depth of the underwater vehicle, ameasured voltage level of one or more systems on board the underwatervehicle, or a measured temperature on board the underwater vehicle.These parameters can influence what states are executed if, for example,executing a particular state could put underwater vehicle 104 atunacceptable risk, or if executing a particular state would consume toomany resources. Some other example parameters may include anauthentication received from another vehicle in proximity to theunderwater vehicle or an indication of the presence of a surface vessel.Receiving an authentication from another vehicle may inform underwatervehicle 104 that it has safely reached an extraction zone, or that itcan begin communication with the authenticated vehicle. Receiving anindication of the presence of a surface vessel may cause underwatervehicle 104 to abort trying to surface anywhere too close to the surfacevessel or may cause under vehicle 104 to monitor the surface vessel.

State machine 300 may include any number of other operational states,including other shared states to perform tasks that would be common formost missions. For example, state machine 300 can include a “refueling”state that may have entrance criteria associated with a remaining fuellevel. The refueling state may involve moving to a particular locationto be refueled before continuing on with whatever task was interruptedto enter the refueling state. Autonomous refueling can enableinfinitesimal transitions through state machine 300 in the absence ofphysical faults, thus supporting long duration maritime autonomymissions.

FIG. 4 illustrates another example schematic of a state machine 400 thatcan be used to control the operations of underwater vehicle 104,according to an embodiment. State machine 400 includes many of the samestates as state machine 300 and are similarly labeled. The descriptionof these states is not repeated here. However, state machine 400includes one or more multi-agent states 402 that are activated whenunderwater vehicle 104 is in the proximity of another friendlyunderwater vehicle, according to an embodiment. Such multi-agent states402 may have entrance criteria that includes being paired with anotherunderwater vehicle before the multi-agent states 402 can be executed.

According to an embodiment, state machine 400 includes a “SeekTeammates” operating state that is executed after launch and continuallyscans for other vehicles to potentially team up with. In someembodiments, the teammate seeking operations may be performed as part ofthe transit state 310. When another vehicle is identified, anauthentication process can be performed via any known authenticationhandshake method between the two vehicles. If the other vehicle isdetermined to be a friendly vehicle, then multi-agent states 402 can beactivated and the entrance criteria for any of multi-agent states 402can be considered when transitioning to another operating state. If, forexample, entrance criteria are met for a first joint task/first state404, the controller may transmit a signal to the other friendly vehicleto determine if it is available to assist with the joint task. If theother vehicle is available, then the operation state of underwatervehicle 104 can transition to execute first joint task/first state 404with the help of the other vehicle. Once joint task/first state 404 iscompleted (e.g., meets its exit criteria), the state machine maytransition to executing first joint task/second state 406, or maytransition back to the shared transit state 310. First joint task/secondstate 406 may provide instructions for executing another portion of thefirst task with the aid of the other friendly vehicle. Any number ofmulti-agent states 402 can exist with any number of branching pathwaysbetween them, such that they may operate just like the state transitionsof a solo vehicle. Furthermore, although only one joint task isillustrated, it will be understood that any number of joint tasks can beperformed, each joint task having any number of operating states.

Once the joint task has been completed, another joint task can beperformed or the team may disband such that underwater vehicle 104transitions to the abort state 304 and can begin any of its otherindividual tasks. Additionally, if contact with the other vehicle islost for any reason during execution of any of multi-agent states 402,the operation state of underwater vehicle 104 can transit to the abortstate 304. It should be noted that the discussion regarding adaptabilityalso applies to multi-agent states 402, such that the entrance and/orexit criteria of any of multi-agent states 402 can be changed based onoutput received from sensors on board underwater vehicle 104 and/orsignals received from the other vehicle.

FIG. 5 illustrates an example mission timeline 501 having various stagesof different operating states for the underwater vehicle along with acorresponding depth chart 503 illustrating the general depth of theunderwater vehicle for each of the stages of mission timeline 501.According to an embodiment, the mission may begin with a planning stagethat may correspond roughly to the launch state 302 of state machine300. In the planning stage, the underwater vehicle may performdiagnostic checks on its systems to ensure it can carry out theprogrammed mission. In some embodiments, the planning stage involvesloading the mission parameters and state machine data into theunderwater vehicle while it is on a launch platform or after in-waterdeployment via human-machine communication interfaces. After planning iscomplete and the underwater vehicle has been placed in the water, it maydive down to a first depth 502 to avoid detection.

The next mission stage is a transit stage where the underwater vehiclemoves to another area to begin patrolling. According to someembodiments, the underwater vehicle remains at first depth 502 duringthe transit stage.

Once the underwater vehicle reaches its predetermined patrol area, ittransitions to the patrol stage where it raises up to a second depth 504at or near to the water's surface. In another embodiment, the underwatervehicle transitions to the patrol stage in response to receiving certaindata from one or more of its sensors. During the patrol stage, theunderwater vehicle may raise a mast above the water's surface to collectRF signals from above the water's surface. These RF signals may be usedto determine the presence of any other vehicles or objects of interestin the area. The patrol stage may involve the underwater vehicle movingin a certain pattern around a particular area.

If the underwater vehicle detects the presence of another vehicle orobject of interest, then it may transition to the survey stage,according to an embodiment. In some embodiments, the survey stageinvolves moving the underwater vehicle closer to the vehicle or objectof interest to collect other types of data about the vehicle or objectof interest. Accordingly, the underwater vehicle may dive down to athird depth 506 in order to move closer to the vehicle or object ofinterest to avoid detection. Once the underwater vehicle is closeenough, it may rise back to a fourth depth 508 at or near the water'ssurface in order to perform the data collection portion of the surveystage, according to an embodiment. A mast from the underwater vehiclemay again be used to extend above the water's surface for collecting theadditional data about the vehicle or object of interest. Data collectingduring the survey stage may involve capturing photographs, video, orsome other content to provide information about the vehicle or object ofinterest.

Once enough survey data has been collected, and/or a certain time periodhas passed, the underwater vehicle may transition to a report stage aspart of its mission. Reporting may be performed at a fifth depth 510that is chosen to provide the clearest communication with anotherreceiver. The communication may be performed acoustically through thewater. In some embodiments, communicating the data captured during thepatrol and survey stages may be one of the operations performed duringthe extraction state 314 from state machine 300.

Once the data has been effectively communicated, the underwater vehiclemay begin another transit stage towards a recovery zone at the samefifth depth 510. This transit stage may be another one of the operationsperformed during the extraction state 314 from state machine 300. Oncethe underwater vehicle reaches the recovery zone, it may transition tothe recover stage where it rises to a sixth depth 512 more suitable forthe underwater vehicle to be recovered from the water. The recover stagemay be similar to the vehicle recovery state 316 of state machine 300.

As is to be appreciated based on the description above, a state machineimplementation may be used to carry out the various stages of missiontimeline 501 with transitions between the stages being governed by themovement from one operating state to the next in the state machine. Theentrance and/or exit criteria of the various states can be used tocontrol when and how the underwater vehicle completes each of the stagesof its mission. Furthermore, if the mission is aborted during any of thestages, the state machine allows the underwater vehicle to eitherreattempt the mission or try to complete another task that is part ofthe state machine.

Methodology

FIG. 6 illustrates an example method 600 for controlling the operationof an underwater vehicle, in accordance with certain embodiments of thepresent disclosure. As can be seen, the example method includes a numberof phases and sub-processes, the sequence of which may vary from oneembodiment to another. However, when considered in the aggregate, thesephases and sub-processes form a process for controlling the underwatervehicle using a state machine implementation as described above, forexample, with reference to FIG. 3 or FIG. 4. However other systemarchitectures can be used in other embodiments, as will be apparent inlight of this disclosure. To this end, the correlation of the variousfunctions shown in FIG. 6 to the specific components illustrated in theother figures is not intended to imply any structural and/or uselimitations. Numerous variations and alternative configurations will beapparent in light of this disclosure. According to an embodiment, method600 describes a single transition from one state to another state andmay not describe all of the possible complexities of the state machinefor clarity.

Method 600 may begin at operation 602 where a first operating state ofthe state machine is executed. This first operating state may representany of the states within the state machine, including the firstoperating state executed upon launching the underwater vehicle.

Method 600 continues with operation 604 where a determination is madeabout whether the exit criteria of the first operating state has beenmet. If the exit criteria has not been met, then the method loops backto operation 602 where the first operating state is being executed. Ifthe exit criteria has been meet, then method 600 proceeds to operation606. The exit criteria may be unique to each of the states within thestate machine. For example, the exit criteria of the first launch statemay involve confirming that all subsystems aboard the underwater vehicleare operational. In another example, the exit criteria of a specifictask state may involve some confirmation that the steps being performedin the specific task state have been completed. In some embodiments,each of the states within the state machine can include exit criteriaassociated with an error or something similar that signifies a failurein order to transition immediate to the abort state.

As noted above, if the exit criteria of the first operating state hasbeen meet, then method 600 proceeds to operation 606 where adetermination is made whether the entrance criteria of a second statehas been met. In some embodiments, the entrance criteria of the secondstate may be the same as the exit criteria of the first state, such thatthe transition occurs once the exit criteria of the first state is met.In some embodiments, the entrance criteria of the second state mayrequire some task-specific parameters to be at certain values beforeoperation will transition to the second state. If the entrance criteriahas not been met, then the method loops back to operation 602 where thefirst operating state is being executed. If the entrance criteria hasbeen meet, then method 600 proceeds to operation 608 where the secondstate is executed.

FIG. 7 illustrates an example method 700 for controlling the operationof an underwater vehicle, in accordance with certain embodiments of thepresent disclosure. As can be seen, the example method includes a numberof phases and sub-processes, the sequence of which may vary from oneembodiment to another. However, when considered in the aggregate, thesephases and sub-processes form a process for controlling the underwatervehicle using a state machine implementation as described above, forexample, with reference to FIG. 3 or FIG. 4. However other systemarchitectures can be used in other embodiments, as will be apparent inlight of this disclosure. To this end, the correlation of the variousfunctions shown in FIG. 7 to the specific components illustrated in theother figures is not intended to imply any structural and/or uselimitations. Numerous variations and alternative configurations will beapparent in light of this disclosure. According to an embodiment, method700 further illustrates the decision-making process when the entrancecriteria of more than one other state is met.

Method 700 may begin at operation 702 where a first operating state ofthe state machine is executed. This first operating state may representany of the states within the state machine, including the firstoperating state executed upon launching the underwater vehicle.

Method 700 continues with operation 704 where a determination is madeabout whether the exit criteria of the first operating state has beenmet. This operation is functionally the same as operation 604 frommethod 600 and is not described again here.

Method 700 proceeds with operation 706 if the exit criteria from thefirst operating state was met. Operation 706 involves determining if theentrance criteria of more than one other operating state is met. Thismay occur, for example, in situations where multiple tasks have beenprogrammed and the underwater vehicle is in a situation where it canbegin or transition to numerous possible tasks. In another example,there may be multiple states within a given task that could be selectedfor execution at a given time.

If the entrance criteria of more than one other operating state has beenmet, then method 700 proceeds to operation 708 where one of theoperating states is selected for execution. According to an embodiment,a priority list is used to determine which of the operating states toexecute next in the event that the entrance criteria of more than oneoperating state is met. The priority list may be generated by a user andloaded into memory of the underwater vehicle before it is launched. Insome embodiments, the priority list is dynamically adaptable and canchange based on current operating conditions of the underwater vehicleand/or outputs received from one or more sensors onboard the underwatervehicle. Once the state with the highest priority is identified from thepriority list, method 700 proceeds to operation 710 where the highestpriority state is executed.

If the entrance criteria of more than one other operating state has notbeen met, then method 700 proceeds from operation 706 to operation 712where another determination is made whether the entrance criteria of oneoperating state is met. If not, then no other operating states haveentrance criteria that is met, so method 700 loops back to operation 702to continue execution of the first operating state. If one otheroperating state does have entrance criteria that is met, then method 700proceeds to operation 714 where the one other operating state isexecuted.

FIG. 8 illustrates an example method 800 for controlling the operationof an underwater vehicle, in accordance with certain embodiments of thepresent disclosure. As can be seen, the example method includes a numberof phases and sub-processes, the sequence of which may vary from oneembodiment to another. However, when considered in the aggregate, thesephases and sub-processes form a process for controlling the underwatervehicle using a state machine implementation as described above, forexample, with reference to FIG. 3 or FIG. 4. However other systemarchitectures can be used in other embodiments, as will be apparent inlight of this disclosure. To this end, the correlation of the variousfunctions shown in FIG. 8 to the specific components illustrated in theother figures is not intended to imply any structural and/or uselimitations. Numerous variations and alternative configurations will beapparent in light of this disclosure. According to an embodiment, method800 further illustrates the decision-making process when another vehicleis involved as a potential teammate for completing tasks.

Method 800 may begin at operation 802 where a first operating state ofthe state machine is executed. This first operating state may representany of the states within the state machine, including the firstoperating state executed upon launching the underwater vehicle.

Method 800 continues with operation 804 where a determination is madeabout whether the exit criteria of the first operating state has beenmet. This operation is functionally the same as operation 604 frommethod 600 and is not described again here.

Method 800 proceeds with operation 806 if the exit criteria from thefirst operating state was met. Operation 806 involves determining if asecond vehicle has been identified and verified (e.g., can be teamedwith). The second vehicle can be another underwater vehicle or a surfacevessel. The second vehicle may be identified via an electronic oracoustic signature given off by the second vehicle. Authentication withthe second vehicle can be performed via any known handshake methodbetween the two vehicles. In some embodiments, more than one othervehicle can be identified and verified for teaming up to complete jointtasks.

If a second vehicle has not been identified and/or verified, then method800 proceeds to operation 808 where a determination is made whether theentrance criteria of another operating state has been met. Operation 808may be functionally the same as operation 606 from method 600.Similarly, if entrance criteria of another state is not met, method 800loops back to operation 802 and if the entrance criteria of anotherstate is met, then method 800 continues to operation 810 where anotheroperating state is executed.

If a second vehicle has been identified and verified, then method 800proceeds from operation 806 to operation 812 where a determination ismade whether the entrance criteria of a joint operating state has beenmet. The joint operating state only becomes activated after successfulverification of another vehicle, according to an embodiment. If theentrance criteria for the joint operating state is not met, then method800 can continue with operation 808 (e.g., individual operation if nojoint tasks are available). In some embodiments, more joint tasks may betested to see if the entrance criteria of any joint task can be met. Ifthe entrance criteria for the joint operating state is met, then method800 continues to operation 814 where the joint operating state can beexecuted with help from the second vehicle.

Each of method 600, 700, and 800 is illustrated separately to highlightdifferent decision-making operations performed by the controller whenimplementing the state machine. However, combinations of the variousoperations between any of methods 600, 700, and 800 are possible withoutlimitation.

Example Computing Platform

FIG. 9 illustrates an example computing platform 900 that interfaceswith a state machine 901, configured in accordance with certainembodiments of the present disclosure. In some embodiments, computingplatform 900 may host, or otherwise be incorporated into a personalcomputer, workstation, server system, laptop computer, ultra-laptopcomputer, tablet, touchpad, portable computer, handheld computer,palmtop computer, personal digital assistant (PDA), cellular telephone,combination cellular telephone and PDA, smart device (for example,smartphone or smart tablet), mobile internet device (MID), messagingdevice, data communication device, imaging device, wearable device,embedded system, and so forth. Any combination of different devices maybe used in certain embodiments. Computing platform 900 may represent anytype of computing system on board a vehicle, such as an underwatervehicle.

In some embodiments, computing platform 900 may comprise any combinationof a state machine 901, a processor 902, a memory 904, a networkinterface 906, an input/output (I/O) system 908, a user interface 910,and a storage system 912. In some embodiments, state machine 901 isimplemented as part of processor 902 or as part of another controllerspecifically designed for operating a vehicle, such as an underwatervehicle. As can be further seen, a bus and/or interconnect is alsoprovided to allow for communication between the various componentslisted above and/or other components not shown. Computing platform 900can be coupled to a network 916 through network interface 906 to allowfor communications with other computing devices, platforms, orresources. Other componentry and functionality not reflected in theblock diagram of FIG. 9 will be apparent in light of this disclosure,and it will be appreciated that other embodiments are not limited to anyparticular hardware configuration.

Processor 902 can be any suitable processor and may include one or morecoprocessors or controllers to assist in control and processingoperations associated with computing platform 900. In some embodiments,processor 902 may be implemented as any number of processor cores. Theprocessor (or processor cores) may be any type of processor, such as,for example, a micro-processor, an embedded processor, a digital signalprocessor (DSP), a graphics processor (GPU), a network processor, afield programmable gate array or other device configured to executecode. The processors may be multithreaded cores in that they may includemore than one hardware thread context (or “logical processor”) per core.

Memory 904 can be implemented using any suitable type of digital storageincluding, for example, flash memory and/or random access memory (RAM).In some embodiments, memory 904 may include various layers of memoryhierarchy and/or memory caches as are known to those of skill in theart. Memory 904 may be implemented as a volatile memory device such as,but not limited to, a RAM, dynamic RAM (DRAM), or static RAM (SRAM)device. Storage system 912 may be implemented as a non-volatile storagedevice such as, but not limited to, one or more of a hard disk drive(HDD), a solid-state drive (SSD), a universal serial bus (USB) drive, anoptical disk drive, tape drive, an internal storage device, an attachedstorage device, flash memory, battery backed-up synchronous DRAM(SDRAM), and/or a network accessible storage device. In someembodiments, storage system 912 may comprise technology to increase thestorage performance enhanced protection for valuable digital media whenmultiple hard drives are included.

Processor 902 may be configured to execute an Operating System (OS) 914which may comprise any suitable operating system, such as Google Android(Google Inc., Mountain View, Calif.), Microsoft Windows (MicrosoftCorp., Redmond, Wash.), Apple OS X (Apple Inc., Cupertino, Calif.),Linux, or a real-time operating system (RTOS). As will be appreciated inlight of this disclosure, the techniques provided herein can beimplemented without regard to the particular operating system providedin conjunction with computing platform 900, and therefore may also beimplemented using any suitable existing or subsequently-developedplatform.

Network interface 906 can be any appropriate network chip or chipsetwhich allows for wired and/or wireless connection between othercomponents of computing platform 900 and/or network 916, therebyenabling computing platform 900 to communicate with other remotecomputing systems, servers, cloud-based servers, and/or other resources.Wireless communication may conform to existing (or yet to be developed)standards, such as, for example, cellular communications including LTE(Long Term Evolution), Wireless Fidelity (Wi-Fi), Bluetooth, and/or NearField Communication (NFC). Exemplary wireless networks include, but arenot limited to, wireless local area networks, wireless personal areanetworks, wireless metropolitan area networks, cellular networks, andsatellite networks. In some embodiments, network interface 906 includesone or more acoustic transducers for communicating via acoustic wavesthrough a water medium.

I/O system 908 may be configured to interface between various I/Odevices and other components of computing platform 900. I/O devices mayinclude, but not be limited to, a user interface 910. User interface 910may include devices (not shown) such as a display element, touchpad,keyboard, mouse, and speaker, etc. I/O system 908 may include a graphicssubsystem configured to perform processing of images for rendering on adisplay element. Graphics subsystem may be a graphics processing unit ora visual processing unit (VPU), for example. An analog or digitalinterface may be used to communicatively couple graphics subsystem andthe display element. For example, the interface may be any of a highdefinition multimedia interface (HDMI), DisplayPort, wireless HDMI,and/or any other suitable interface using wireless high definitioncompliant techniques. In some embodiments, the graphics subsystem couldbe integrated into processor 902 or any chipset of computing platform900.

It will be appreciated that in some embodiments, the various componentsof the computing platform 900 may be combined or integrated in asystem-on-a-chip (SoC) architecture. In some embodiments, the componentsmay be hardware components, firmware components, software components orany suitable combination of hardware, firmware or software.

In various embodiments, computing platform 900 may be implemented as awireless system, a wired system, or a combination of both. Whenimplemented as a wireless system, computing platform 900 may includecomponents and interfaces suitable for communicating over a wirelessshared media, such as one or more antennae, transmitters, receivers,transceivers, amplifiers, filters, control logic, and so forth. Anexample of wireless shared media may include portions of a wirelessspectrum, such as the radio frequency spectrum and so forth. Whenimplemented as a wired system, computing platform 900 may includecomponents and interfaces suitable for communicating over wiredcommunications media, such as input/output adapters, physical connectorsto connect the input/output adaptor with a corresponding wiredcommunications medium, a network interface card (NIC), disc controller,video controller, audio controller, and so forth. Examples of wiredcommunications media may include a wire, cable metal leads, printedcircuit board (PCB), backplane, switch fabric, semiconductor material,twisted pair wire, coaxial cable, fiber optics, and so forth.

Some of the embodiments discussed herein may be implemented, forexample, using a machine readable medium or article which may store aninstruction or a set of instructions that, if executed by a machine, maycause the machine to perform a method and/or operations in accordancewith the embodiments. Such a machine may include, for example, anysuitable processing platform, computing platform, computing device,processing device, computing system, processing system, computer,process, or the like, and may be implemented using any suitablecombination of hardware and/or software. The machine readable medium orarticle may include, for example, any suitable type of memory unit,memory device, memory article, memory medium, storage device, storagearticle, storage medium, and/or storage unit, such as memory, removableor non-removable media, erasable or non-erasable media, writeable orrewriteable media, digital or analog media, hard disk, floppy disk,compact disk read only memory (CD-ROM), compact disk recordable (CD-R)memory, compact disk rewriteable (CR-RW) memory, optical disk, magneticmedia, magneto-optical media, removable memory cards or disks, varioustypes of digital versatile disk (DVD), a tape, a cassette, or the like.The instructions may include any suitable type of code, such as sourcecode, compiled code, interpreted code, executable code, static code,dynamic code, encrypted code, and the like, implemented using anysuitable high level, low level, object oriented, visual, compiled,and/or interpreted programming language.

Unless specifically stated otherwise, it may be appreciated that termssuch as “processing,” “computing,” “calculating,” “determining,” or thelike refer to the action and/or process of a computer or computingsystem, or similar electronic computing device, that manipulates and/ortransforms data represented as physical quantities (for example,electronic) within the registers and/or memory units of the computersystem into other data similarly represented as physical quantitieswithin the registers, memory units, or other such information storagetransmission or displays of the computer system. The embodiments are notlimited in this context.

The terms “circuit” or “circuitry,” as used in any embodiment herein,may comprise, for example, singly or in any combination, hardwiredcircuitry, programmable circuitry such as computer processors comprisingone or more individual instruction processing cores, state machinecircuitry, and/or firmware that stores instructions executed byprogrammable circuitry. The circuitry may include a processor and/orcontroller configured to execute one or more instructions to perform oneor more operations described herein. The instructions may be embodiedas, for example, an application, software, firmware, etc. configured tocause the circuitry to perform any of the aforementioned operations.Software may be embodied as a software package, code, instructions,instruction sets and/or data recorded on a computer-readable storagedevice. Software may be embodied or implemented to include any number ofprocesses, and processes, in turn, may be embodied or implemented toinclude any number of threads, etc., in a hierarchical fashion. Firmwaremay be embodied as code, instructions or instruction sets and/or datathat are hard-coded (e.g., nonvolatile) in memory devices. The circuitrymay, collectively or individually, be embodied as circuitry that formspart of a larger system, for example, an integrated circuit (IC), anapplication-specific integrated circuit (ASIC), a system on-chip (SoC),desktop computers, laptop computers, tablet computers, servers, smartphones, etc. Other embodiments may be implemented as software executedby a programmable control device. As described herein, variousembodiments may be implemented using hardware elements, softwareelements, or any combination thereof. Examples of hardware elements mayinclude processors, microprocessors, circuits, circuit elements (e.g.,transistors, resistors, capacitors, inductors, and so forth), integratedcircuits, application specific integrated circuits (ASIC), programmablelogic devices (PLD), digital signal processors (DSP), field programmablegate array (FPGA), logic gates, registers, semiconductor device, chips,microchips, chip sets, and so forth.

FURTHER EXAMPLE EMBODIMENTS

The following examples pertain to further embodiments, from whichnumerous permutations and configurations will be apparent.

Example 1 is a controller for use on board an underwater vehicle. Thecontroller includes a state machine having a plurality of operatingstates for the underwater vehicle. Each of the plurality of operatingstates includes one or both of entrance criteria and exit criteria. Thecontroller is configured to transition from executing a first operatingstate of the plurality of operating states to executing a secondoperating state of the plurality of operating states in response to theexit criteria of the first operating state and the entrance criteria ofthe second operating state both being met. The plurality of operatingstates includes a first portion of operating states associated with afirst task for which the underwater vehicle is configured to perform, asecond portion of operating states associated with a second task forwhich the underwater vehicle is configured to perform, and a thirdportion of operating states associated with both the first and secondtasks for which the underwater vehicle is configured to perform.

Example 2 includes the subject matter of Example 1, wherein one or bothof the entrance criteria and exit criteria of a given operating state isadaptable based on one or more detectable parameters.

Example 3 includes the subject matter of Example 2, wherein the one ormore detectable parameters includes one or more of a measured depth ofthe underwater vehicle, a measured voltage level of one or more systemson board the underwater vehicle, or a measured temperature on board theunderwater vehicle.

Example 4 includes the subject matter of Example 2 or 3, wherein the oneor more detectable parameters includes one or more of an authenticationreceived from another vehicle in proximity to the underwater vehicle oran indication of the presence of a surface vessel.

Example 5 includes the subject matter of any one of Examples 2-4,wherein the one or more detectable parameters are detectable by a sensorof the underwater vehicle.

Example 6 includes the subject matter of any one of Examples 1-5,wherein the underwater vehicle is a first underwater vehicle, and theplurality of operating states includes one or more multi-agent statesthat are configured to be activated in response to the first underwatervehicle identifying and teaming with a second underwater vehicle inproximity to the first underwater vehicle.

Example 7 includes the subject matter of any one of Examples 1-6,wherein at least one operating state in the third portion of operatingstates is configured to control movement of the underwater vehicle.

Example 8 includes the subject matter of any one of Examples 1-7,wherein at least one operating state in the third portion of operatingstates is configured to move the underwater vehicle to an extractionsite.

Example 9 includes the subject matter of any one of Examples 1-8,wherein the controller is configured to generate a report that detailswhat operating states were executed by the controller over a given timeperiod.

Example 10 includes the subject matter of Example 9, wherein the reportfurther includes a summary of which entrance and/or exit criteria weremet for each of the executed operating states.

Example 11 includes the subject matter of any one of Examples 1-10,wherein the controller is further configured to determine if entrancecriteria of more than one other operating state is met; determine whichof the more than one other operating states has a highest priority; andtransition to executing the operating state having the highest priorityfrom the more than one other operating states.

Example 12 is a method of autonomously controlling an underwatervehicle. The method includes executing a first operating state of aplurality of operating states associated with the underwater vehicle;determining that exit criteria of the first operating state is met andthat entrance criteria of a second operating state of the plurality ofoperating states is met; and in response to the determining,transitioning from executing the first operating state to executing thesecond operating state. The plurality of operating states includes afirst portion of operating states associated with a first task for whichthe underwater vehicle is configured to perform, a second portion ofoperating states associated with a second task for which the underwatervehicle is configured to perform, and a third portion of operatingstates associated with both the first and second tasks for which theunderwater vehicle is configured to perform.

Example 13 includes the subject matter of Example 12, further comprisingadapting one or both of the exit criteria and the entrance criteriabased on one or more detectable parameters.

Example 14 includes the subject matter of Example 13, wherein the one ormore detectable parameters includes one or more of a measured depth ofthe underwater vehicle, a measured voltage level of one or more systemson board the underwater vehicle, or a measured temperature on board theunderwater vehicle.

Example 15 includes the subject matter of Example 13 or 14, wherein theone or more detectable parameters includes one or more of anauthentication received from another vehicle in proximity to theunderwater vehicle or an indication of the presence of a surface vessel.

Example 16 includes the subject matter of any one of Examples 12-15,wherein the underwater vehicle is a first underwater vehicle, and themethod further comprises detecting the presence of a second underwatervehicle in proximity to the first underwater vehicle; teaming with thesecond underwater vehicle; in response to the teaming, activating one ormore multi-agent states of the plurality of operating states; andexecuting one or more of the one or more multi-agent states.

Example 17 includes the subject matter of any one of Examples 12-16,further comprising executing at least one operating state in the thirdportion of operating states to control movement of the underwatervehicle.

Example 18 includes the subject matter of any one of Examples 12-17,further comprising executing at least one operating state in the thirdportion of operating states to wirelessly transmit data using atransmitter onboard the underwater vehicle.

Example 19 includes the subject matter of any one of Examples 12-18,further comprising generating a report that details what operatingstates were executed over a given time period.

Example 20 includes the subject matter of Example 19, wherein the reportfurther includes a summary of which entrance and/or exit criteria weremet for each of the executed operating states.

Example 21 includes the subject matter of any one of Examples 12-20,further comprising determining if entrance criteria of more than oneother operating state is met; determining which of the more than oneother operating states has a highest priority; and executing theoperating state having the highest priority from the more than one otheroperating states.

Example 22 is a computer program product including one or morenon-transitory machine-readable mediums having instructions encodedthereon that, when executed by one or more processors, result in aplurality of operations for autonomously controlling an underwatervehicle. The operations include executing a first operating state of aplurality of operating states associated with the underwater vehicle;determining that exit criteria of the first operating state is met andthat entrance criteria of a second operating state of the plurality ofoperating states is met; and in response to the determining,transitioning from executing the first operating state to executing thesecond operating state. The plurality of operating states includes afirst portion of operating states associated with a first task for whichthe underwater vehicle is configured to perform, a second portion ofoperating states associated with a second task for which the underwatervehicle is configured to perform, and a third portion of operatingstates associated with both the first and second tasks for which theunderwater vehicle is configured to perform.

Example 23 includes the subject matter of Example 22, wherein theoperations further comprise adapting one or both of the exit criteriaand the entrance criteria based on one or more detectable parameters.

Example 24 includes the subject matter of Example 23, wherein the one ormore detectable parameters includes one or more of a measured depth ofthe underwater vehicle, a measured voltage level of one or more systemson board the underwater vehicle, or a measured temperature on board theunderwater vehicle.

Example 25 includes the subject matter of Example 23 or 24, wherein theone or more detectable parameters includes one or more of anauthentication received from another vehicle in proximity to theunderwater vehicle or an indication of the presence of a surface vessel.

Example 26 includes the subject matter of any one of Examples 22-25,wherein the underwater vehicle is a first underwater vehicle, and theoperations further comprise detecting the presence of a secondunderwater vehicle in proximity to the first underwater vehicle; teamingwith the second underwater vehicle; in response to the teaming,activating one or more multi-agent states of the plurality of operatingstates; and executing one or more of the one or more multi-agent states.

Example 27 includes the subject matter of any one of Examples 22-26,wherein the operations further comprise executing at least one operatingstate in the third portion of operating states to control movement ofthe underwater vehicle.

Example 28 includes the subject matter of any one of Examples 22-27,wherein the operations further comprise executing at least one operatingstate in the third portion of operating states to wirelessly transmitdata using a transmitter onboard the underwater vehicle.

Example 29 includes the subject matter of any one of Examples 22-28,wherein the operations further comprise generating a report that detailswhat operating states were executed over a given time period.

Example 30 includes the subject matter of Example 29, wherein the reportfurther includes a summary of which entrance and/or exit criteria weremet for each of the executed operating states.

Example 31 includes the subject matter of any one of Examples 22-30,wherein the operations further comprise determining if entrance criteriaof more than one other operating state is met; determining which of themore than one other operating states has a highest priority; andexecuting the operating state having the highest priority from the morethan one other operating states.

Numerous specific details have been set forth herein to provide athorough understanding of the embodiments. It will be appreciated,however, that the embodiments may be practiced without these specificdetails. In other instances, well known operations, components andcircuits have not been described in detail so as not to obscure theembodiments. It can be further appreciated that the specific structuraland functional details disclosed herein may be representative and do notnecessarily limit the scope of the embodiments. In addition, althoughthe subject matter has been described in language specific to structuralfeatures and/or methodological acts, it is to be understood that thesubject matter defined in the appended claims is not necessarily limitedto the specific features or acts described herein. Rather, the specificfeatures and acts described herein are disclosed as example forms ofimplementing the claims.

What is claimed is:
 1. A controller for use on board an underwatervehicle, the controller comprising: a state machine comprising aplurality of operating states for the underwater vehicle, wherein eachof the plurality of operating states includes one or both of entrancecriteria and exit criteria; wherein the controller is configured totransition from executing a first operating state of the plurality ofoperating states to executing a second operating state of the pluralityof operating states in response to the exit criteria of the firstoperating state and the entrance criteria of the second operating stateboth being met; and wherein the plurality of operating states comprisesa first portion of operating states associated with a first task forwhich the underwater vehicle is configured to perform, a second portionof operating states associated with a second task for which theunderwater vehicle is configured to perform, and a third portion ofoperating states associated with both the first and second tasks forwhich the underwater vehicle is configured to perform.
 2. The controllerof claim 1, wherein one or both of the entrance criteria and exitcriteria of a given operating state is adaptable based on one or moredetectable parameters.
 3. The controller of claim 2, wherein the one ormore detectable parameters includes one or more of a measured depth ofthe underwater vehicle, a measured voltage level of one or more systemson board the underwater vehicle, a measured temperature on board theunderwater vehicle, an authentication received from another vehicle inproximity to the underwater vehicle, or an indication of the presence ofa surface vessel.
 4. The controller of claim 1, wherein the underwatervehicle is a first underwater vehicle, and the plurality of operatingstates includes one or more multi-agent states that are configured to beactivated in response to the first underwater vehicle identifying andteaming with a second underwater vehicle in proximity to the firstunderwater vehicle.
 5. The controller of claim 1, wherein at least oneoperating state in the third portion of operating states is configuredto control movement of the underwater vehicle.
 6. The controller ofclaim 1, wherein the controller is configured to generate a report thatdetails what operating states were executed by the controller over agiven time period, wherein the report further includes a summary ofwhich entrance and/or exit criteria were met for each of the executedoperating states.
 7. The controller of claim 1, wherein the controlleris further configured to: determine if entrance criteria of more thanone other operating state is met; determine which of the more than oneother operating states has a highest priority; and transition toexecuting the operating state having the highest priority from the morethan one other operating states.
 8. A method of autonomously controllingan underwater vehicle, the method comprising: executing a firstoperating state of a plurality of operating states associated with theunderwater vehicle; determining that exit criteria of the firstoperating state is met and that entrance criteria of a second operatingstate of the plurality of operating states is met; and in response tothe determining, transitioning from executing the first operating stateto executing the second operating state; wherein the plurality ofoperating states comprises a first portion of operating statesassociated with a first task for which the underwater vehicle isconfigured to perform, a second portion of operating states associatedwith a second task for which the underwater vehicle is configured toperform, and a third portion of operating states associated with boththe first and second tasks for which the underwater vehicle isconfigured to perform.
 9. The method of claim 8, further comprisingadapting one or both of the exit criteria and the entrance criteriabased on one or more detectable parameters.
 10. The method of claim 9,wherein the one or more detectable parameters includes one or more of ameasured depth of the underwater vehicle, a measured voltage level ofone or more systems on board the underwater vehicle, a measuredtemperature on board the underwater vehicle, an authentication receivedfrom another vehicle in proximity to the underwater vehicle, or anindication of the presence of a surface vessel.
 11. The method of claim8, wherein the underwater vehicle is a first underwater vehicle, and themethod further comprises: detecting the presence of a second underwatervehicle in proximity to the first underwater vehicle; teaming with thesecond underwater vehicle; in response to the teaming, activating one ormore multi-agent states of the plurality of operating states; andexecuting one or more of the one or more multi-agent states.
 12. Themethod of claim 8, further comprising executing at least one operatingstate in the third portion of operating states to control movement ofthe underwater vehicle.
 13. The method of claim 8, further comprisingexecuting at least one operating state in the third portion of operatingstates to wirelessly transmit data using a transmitter onboard theunderwater vehicle.
 14. The method of claim 8, further comprisinggenerating a report that details what operating states were executedover a given time period, wherein the report further includes a summaryof which entrance and/or exit criteria were met for each of the executedoperating states.
 15. The method of claim 8, further comprising:determining if entrance criteria of more than one other operating stateis met; determining which of the more than one other operating stateshas a highest priority; and executing the operating state having thehighest priority from the more than one other operating states.
 16. Acomputer program product including one or more non-transitorymachine-readable mediums having instructions encoded thereon that, whenexecuted by one or more processors, result in a plurality of operationsfor autonomously controlling an underwater vehicle, the operationscomprising: executing a first operating state of a plurality ofoperating states associated with the underwater vehicle; determiningthat exit criteria of the first operating state is met and that entrancecriteria of a second operating state of the plurality of operatingstates is met; and in response to the determining, transitioning fromexecuting the first operating state to executing the second operatingstate; wherein the plurality of operating states comprises a firstportion of operating states associated with a first task for which theunderwater vehicle is configured to perform, a second portion ofoperating states associated with a second task for which the underwatervehicle is configured to perform, and a third portion of operatingstates associated with both the first and second tasks for which theunderwater vehicle is configured to perform.
 17. The computer programproduct of claim 16, wherein the operations further comprise adaptingone or both of the exit criteria and the entrance criteria based on oneor more detectable parameters.
 18. The computer program product of claim17, wherein the one or more detectable parameters includes one or moreof a measured depth of the underwater vehicle, a measured voltage levelof one or more systems on board the underwater vehicle, a measuredtemperature on board the underwater vehicle, an authentication receivedfrom another vehicle in proximity to the underwater vehicle, or anindication of the presence of a surface vessel.
 19. The computer programproduct of claim 16, wherein the underwater vehicle is a firstunderwater vehicle, and the operations further comprise: detecting thepresence of a second underwater vehicle in proximity to the firstunderwater vehicle; teaming with the second underwater vehicle; inresponse to the teaming, activating one or more multi-agent states ofthe plurality of operating states; and executing one or more of the oneor more multi-agent states.
 20. The computer program product of claim16, wherein the operations further comprise: determining if entrancecriteria of more than one other operating state is met; determiningwhich of the more than one other operating states has a highestpriority; and executing the operating state having the highest priorityfrom the more than one other operating states.